인터페이스에 관하여
C++는 기본적으로 '인터페이스'라는 기능은 따로 존재하지 않는다. 다만, 다중 상속과 순수 함수를 활용하여 인터페이스와 비슷하게 사용이 가능하다.
여기서 나는 언리얼 인터페이스를 활용할 때, 함수를 구현하여 코드 재사용을 하려 했다.
class IInterfaceClass
{
protected:
void A();
void B() = 0;
}
void IInterfaceClass:A()
{
// 함수 구현
}
void IInterfaceClass:A()
{
// 순수 함수의 구현. 오버라이드한 함수에서 호출이 가능하다.
}
처음 작성했을 땐 괜찮은 것 처럼 느껴졌으나, 결과적으로 코드의 복잡도를 늘리게 되는 원인이 되었다. 단순히 다중 상속이 아닌 언리얼 인터페이스를 활용하는데, 활용은 다중 상속처럼 활용하니 특히 구현된 순수함수의 경우 순수 함수라는 것이 이 함수가 구현되어 있지 않음을 보장하지 않아 코드 작성자에게 혼란을 야기했다.
결론적으로, 인터페이스는 구현하지 않고, 순수함수만을 사용하며 로직의 중복은 컴포넌트를 활용하는 것으로 스스로 코드개발 규칙을 세웠다.